package com.cap6.config;

import com.cap6.bean.Pig;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;

public class JamesImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {

    /**
     * @param annotationMetadata     当前类的注解信息
     * @param beanDefinitionRegistry BeanDefinition注册类
     *                               把所有需要添加到容器中的Bean加入
     */
    @Override
    public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
        boolean bean = beanDefinitionRegistry.containsBeanDefinition("com.cap6.bean.Dog");
        boolean bean2 = beanDefinitionRegistry.containsBeanDefinition("com.cap6.bean.Cat");
        //如果Dog和Cat同时存在于我们IOC容器中, 那么创健Pig类,加入到容器
        RootBeanDefinition beanDefinition = new RootBeanDefinition(Pig.class);
        if (bean && bean2) {
            beanDefinitionRegistry.registerBeanDefinition("pig",beanDefinition);
        }
    }
}
